var express = require('express');
const starModel = require('../database/models/starModel');
var router = express.Router();
var multer = require('multer')

// 路由接口
const storage = multer.diskStorage({
  destination: function (req, file, cb) {  //指定文件存放路径
    cb(null, 'public/images')
  },
  filename: function (req, file, cb) {  //自定义文件存储名称
    console.log(111,file);
    let type = file.mimetype.split('/')[1]  //文件后缀
    let name = Math.random().toString(35).substring(2) + Date.now() //生成随机且唯一的文件名
    cb(null, `${name}.${type}`)
  }
})
const upload = multer({ storage: storage })

router.post('/upload', upload.single('avatar'),function(req, res, next) {
  console.log(222,req.file); //获取图片文件处理中间件返回的相关信息
  let path = `/images/${req.file.filename}`
  res.send({
    code:1,
    msg:'图片上传成功',
    path
  })
});

// 路由接口:用以下发明星数据的
router.get('/star', function(req, res, next) {
  starModel.find().then(result=>{
    res.send({
      code:1,
      msg:'明星列表查询成功',
      data:result
    })
  })
  
});

// 新增明星数据的接口
router.get('/star/add', function(req, res, next) {
  // req  接收客户端上传的数据
  // res  向客户端发送数据
  // next 做接口的拦截
  //向数据库录入一条数据
  let starData = req.query  //1. 接收get请求提交的query数据 
  console.log('服务端接收到的query数据',starData);
  new starModel(starData).save().then(result=>{ //2. 操作数据库
    res.send({   //3. 响应一个操作结果
      code:1,
      msg:'明星数据录入成功'
    })
  })
});

//post新增数据
router.post('/star',(req,res)=>{
  // 1. 接收客户端提交的post数据
  let starData = req.body
  new starModel(starData).save().then(result=>{ // 2. 按需操作数据库
    res.send({   // 3. 返回操作结果给客户端
      code:1,
      msg:'post明星数据录入成功'
    })
  })
})

//put更新数据
router.put('/star',async (req,res)=>{
  // 1. 接收客户端数据（条件、被更新的数据）
  let id = req.query.id //条件
  let updateData = req.body  //新数据对象
  // 2. 对数据库做出更新操作
  try {
    await starModel.updateOne({_id:id},updateData)
    res.send({  
      code:1,
      msg:'明星数据更新成功'
    })
  } catch (error) {
    res.send({  
      code:0,
      msg:'明星数据更新失败',
      error
    })
  }
  // 3. 返回操作结果给客户端
})

//删除数据
router.delete('/star',async (req,res)=>{
  let id = req.query.id
  try {
    let result = await starModel.deleteOne({_id:id})
    console.log('删除结果',result);
    res.send({
      code:1,
      msg:'删除成功'
    })
  } catch (error) {
    res.send({
      code:0,
      msg:'删除失败'
    })
  }
  
})






module.exports = router;
